const setting = require('./setting/setting.js');
const storeManager = require('./utils/store-manager.js');
const dataManager = require('./utils/data-manager.js');

App({
	onLaunch: function (options) {

		if (!wx.cloud) {
			console.error('请使用 2.2.3 或以上的基础库以使用云能力')
		} else {
			wx.cloud.init({
				// env 参数说明：
				//   env 参数决定接下来小程序发起的云开发调用（wx.cloud.xxx）会默认请求到哪个云环境的资源
				//   此处请填入环境 ID, 环境 ID 可打开云控制台查看
				//   如不填则使用默认环境（第一个创建的环境）
				// env: 'my-env-id',
				env: setting.CLOUD_ID,
				traceUser: true,
			})
		}

		this.globalData = {};

		// 初始化数据管理器
		this.dataManager = dataManager;

		// 预加载门店数据
		this.preloadStoreData();

		// 用于自定义导航栏
		wx.getSystemInfo({
			success: e => {
				this.globalData.statusBar = e.statusBarHeight;
				let capsule = wx.getMenuButtonBoundingClientRect();
				if (capsule) {
					this.globalData.custom = capsule;
					this.globalData.customBar = capsule.bottom + capsule.top - e.statusBarHeight;
				} else {
					this.globalData.customBar = e.statusBarHeight + 50;
				} 
			}
		});
	},


	/**
	 * 预加载门店数据
	 */
	preloadStoreData: function() {
		console.log('App: 开始预加载门店数据...');
		storeManager.init().then(storeList => {
			console.log(`App: 门店数据预加载完成，共${storeList.length}个门店`);
			this.globalData.storeDataLoaded = true;
		}).catch(error => {
			console.error('App: 门店数据预加载失败:', error);
			this.globalData.storeDataLoaded = false;
		});
	},

	/**
	 * 获取门店管理器实例
	 */
	getStoreManager: function() {
		return storeManager;
	},

	/**
	 * 刷新门店数据缓存
	 */
	refreshStoreData: function() {
		console.log('App: 手动刷新门店数据缓存');
		return storeManager.refresh();
	},

	/**
	 * 获取门店缓存状态
	 */
	getStoreCacheStatus: function() {
		return storeManager.getCacheStatus();
	},

	/**
	 * 清除门店数据缓存
	 */
	clearStoreCache: function() {
		console.log('App: 清除门店数据缓存');
		storeManager.clearCache();
		this.globalData.storeDataLoaded = false;
	},

	/**
	 * 获取数据管理器实例
	 */
	getDataManager: function() {
		return dataManager;
	},

	/**
	 * 刷新用户数据缓存
	 */
	refreshUserData: function() {
		console.log('App: 刷新用户数据缓存');
		return dataManager.refreshUserData();
	},

	/**
	 * 获取数据缓存状态
	 */
	getDataCacheStatus: function() {
		return dataManager.getCacheStatus();
	},

	/**
	 * 清除所有数据缓存
	 */
	clearAllDataCache: function() {
		console.log('App: 清除所有数据缓存');
		dataManager.clearAllCache();
	},

	/**
	 * 用户登录后的数据初始化
	 */
	initUserData: function() {
		console.log('App: 初始化用户数据');
		return dataManager.refreshUserData();
	},

	/**
	 * 用户登出时清除缓存
	 */
	onUserLogout: function() {
		console.log('App: 用户登出，清除缓存');
		dataManager.clearAllCache();
	}

	/*
	onShow: function (options) {
		// 启动，或者从后台进入前台
		//GroupBiz.initGroupShareTicket(options);
	},
	onHide: function () {
		// 小程序从前台进入后台
		//GroupBiz.clearGroupShareTicket();
	}*/
})